//
//  Player.h
//  party-family
//
//  Created by Justin Kurtz on 7/7/11.
//

#ifndef _Player_H
#define _Player_H

#include "Inventory.h"
#include "Item.h"
#include "Health.h"

class Player {
public:
   Player();
   ~Player();
   // controls:
   //void Move(Direction dir);
   void Jump();
   //void AddVelocity(Vector2D vector);
   //void SetVelocity(Vector2D vector);
   
   // health:
   int GetHealth();
   float GetHealthPercentage();
   void SetMaxHealth(int amount);
   
   void Kill();
   void RestoreToMax();
   bool IsAlive();
   void Damage(int amount);
   void Heal(int amount);
   
   
   // inventory
   int GetNumItems();
   
   void EquipItem(Item *item);
   void UnEquipAll();
   void UnEquipItem(Item *item);
   std::vector<Item> GetEquippedItems();
   int GetMaxEquippableItems();
   int GetMaxNumItems();
   void SetMaxNumItems(int newNum);
   void SetMaxEquippableItems(int newNum);
   void PickupItem(Item *item);
   void DropItem(Item *item);
   
private:
   Health *health;
   Inventory *inventory;
   std::vector<Item> equippedItems;
   int maxEquippableItems;
   int maxNumItems;
   // skeleton
   // position
   
};

#endif // _Player_H
